package tk.paulista.dc.model;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotNull;

import org.springframework.roo.addon.javabean.RooJavaBean;
import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
import org.springframework.roo.addon.tostring.RooToString;
import org.springframework.security.access.prepost.PostFilter;

@RooJavaBean
@RooToString
@RooJpaActiveRecord(finders = { "findUsuariosByNomeDoUsuarioEquals" })
public class Usuario {

	@NotNull
	@Column(unique = true)
	private String nomeDoUsuario;

	@NotNull
	private String senhaDoUsuario;

	@Enumerated
	private PapelDoUsuario papelDoUsuario;

	private Boolean ehUsuarioAtivo;

	@PostFilter("filterObject.nomeDoUsuario == authentication.name")
	public static List<Usuario> findAllUsuarios() {
	    return entityManager().createQuery("SELECT o FROM Usuario o", Usuario.class).getResultList();
	}

}
